//该文件为路由器
const { application } = require('express');
const express = require('express');
//引入 约束对象和模型对象
const users = require('../models/users');
//创建路由器模块
const router = new express.Router();

//设置路由

//test 路由器能不能用 测试成功之后记得注销
// router.get('/test',(req,res)=>{
//     console.log('测试成功！');
//     res.send('路由器可以使用！');
// })

//设置正则 用来检测用户名和密码是否符合规则
const user_name_reg = /^[A-Za-z][A-Za-z0-9_]{2,19}$/;
const password_reg = /^[A-Za-z0-9_]{4,15}$/;

//注册
router.post("/register",async(req,res)=>{
    console.log(req.body);
    //对象的解构赋值
    const {user_name,password} = req.body;
    //如果用户名和密码都满足规则，则进行下一步
    if(user_name_reg.test(user_name) && password_reg.test(password)){
        try{
            await users.create(req.body);
            res.send('注册成功！')
        }catch(e){
            console.log(e);
            res.send('网络延迟，请重新输入！')
        }
    }else{
        res.send('用户名或密码不符合规则，请重新注册！');
    }
})
//登录
router.post('/login',async(req,res)=>{
    console.log(req.body);
    const {user_name,password} = req.body;
    //检测 用户名和密码是否符合规则
    if(user_name_reg.test(user_name) && password_reg.test(password)){
        //查输入的用户名 在 存在数据库中的用户名是否存在
        try{
            const user = await users.findOne({user_name});
            //判断用户名在数据库中是否存在
            if(user){
                //判断密码是否正确
                if(user.password == password){
                    res.send('登录成功！');
                }else{
                    res.send('密码错误！');
                }
            }else{
                res.send('该用户不存在，请重新输入！')
            }
        }catch(e){
            console.log(e);
            res.send('网络延迟！');
        }
    }else{
        res.send('用户名或密码不符合规则！');
    }
})

//暴露出去
module.exports = router;